In many engineering activities, a formalized approach to performing those activities is often adopted. For example, a requirements specification setting out the broad requirements of an engineering activity may be initially generated. These requirements may state the overall aims of the product or process to be delivered at the highest possible level of abstraction. To convert these requirements into a deliverable product, it is typically necessary to decrease the level of abstraction in layers until a characteristic or function of a tangible device has been defined. For example, it may be necessary to convert the requirements specification into one or more design specifications and then to convert each of these design specifications into one or more implementation specifications. In particular, one criterion within the requirements specification may generate one or more criteria within the design specification which in turn may generate one or more criteria within the implementation specification. Hence, a hierarchy of specifications may be generated with each criterion within those specifications being generated in response to criteria in other specifications. Each of these specifications can typically be expressed as a data array where each entry in the data array relates to a different criterion.
In order to provide some understanding of why each of the criteria within each of the specifications exists, it is useful to be able to link criteria within one level with criteria within another level. This can result in a one-to-one, many-to-one or one-to-many relationship between criteria in the different levels in the hierarchy. Accordingly, it will be appreciated that for even a modest engineering activity the number of criteria in each of the levels of the hierarchy and the linking between each of the criteria in each of the data arrays can soon become extremely complex and unmanageable.
This problem becomes particularly acute when different versions of specifications are used. Should different versions be utilised then not only do all the different criteria within arrays need to be managed, as do all the links between them, but also an understanding of how these vary with differing versions needs to be provided. It will be appreciated that the complexity can rapidly increase such that even if tools are used to assist in managing each of the criteria in the different versions of the different levels, as well as all the links between them, the situation can soon become unmanageable.
In one known technique which seeks to overcome this complexity problem, when using of different versions of these specifications a baselining process is employed whereby a particular set of versions of the specifications are frozen from time to time such as, for example, when a particular activity within the project life-cycle has been achieved. Hence, when a subsequent stage in the life-cycle commences which necessitates a change to the baselined specifications it is then typical for a copy of the baselined specifications to be generated which can then subsequently be changed as required.
It is desired to provide an improved technique for controlling the configuration of a hierarchy of data arrays.